package org.wak.scene
{
	import org.wak.baseoneonline.flash.geom.IntPoint;
	
	/**
	 * Interface for the definition of a Scene
	 * Contains all the data needed to create a Scene.
	 */	
	public interface ISceneDefinition
	{
		
		/**
		 * The id of the Scene 
		 * @return the game id of this Scene.
		 * 
		 */		
		function get sceneId():String
		
	   /**
		* debug flag of the scene.
		*/
		function get debugEnabled():Boolean ;
		 
	   /**
		* player walk speed into the Scene.		
		* @param value of the walk speed.		
		*/
		function get playerWalkSpeed():Number ;
		
		/**
		* player initial position in the scene the first time he enter in the Scene		
		* @return IntPoint with the initial position of the player.				
		*/
		function get playerStartingPoint():IntPoint ;
		
		/**
		* Player character on the scene		
		* 
		* @return id of the character to use by the player		
		*/
		function get playerCharacter():String ;
		
		/**
		* blocked for walk tiles array.		
		* 
		* @return Array of IntPoints indicating which tiles are blocked for walk.		
		*/
		function get blockedForWalkArray():Array ;
		
		/**
		* Scene's background id.		
		* 
		* @return Resource id of the Scene's background		
		*/
		function get backgroundId():String ;
		
		/**
		* width and height of the tile.		
		* 
		* @return Size of the tile in the grid.		
		*/
		function get tileSize():int ;
		
		/**
		* Scale rate of the scene		
		* Scale decrement rate, for each pixel away from the camera the scale will be decreased
		* 1X this value.
		* @return the current scale rate.		
		*/
		function get scaleRate():Number ;
		
		/**
		* Scale base of the scene		
		* This value is added to the scaling formula to give a greater max value of scaling.
		* @return the current scale base.		
		*/
		function get scaleBase():Number ;
		
		/**
		 * An array containing the items on the Scene 
		 * @return Array containing the items on the Scene.
		 * 
		 */		
		function get sceneItems():Array ;
		
		/**
		 * An array containing WalkBehindArea Definitions
		 * @return Array of WalkBehindArea s Definitions .
		 * 
		 */		
		function get walkBehinds():Array ;
		
		
		/**
		 * The id of the ambiental sound or music of the Scene.
		 * @return id of the ambiental sound resource.
		 * 
		 */		
		function get ambientalSoundId():String
		
		/**
		 * Array of gatespots to jump from one scene to another. 
		 * @return Array containing GateSpots.
		 * 
		 */		
		function get gatespots():Array ;
		
		/**
		 * Array of ActionSpot s. 
		 * @return Array containing ActionSpot s.
		 * 
		 */		
		function get actionspots():Array ;
		
		/**
		 * Array of SceneCharData holding the info of the position of a character
		 * on the Scene 
		 * @return Array of SceneCharData
		 * 
		 */		
		function get charactersOnScene():Array ;
		
		
	}
}